(define test1 (eq (trap (sin "string")) '(exit-error eval_error)))
(define test2 (eq (trap (cos 'symbol)) '(exit-error eval_error)))
(define test3 (eq (trap (tan t)) '(exit-error eval_error)))
(define test4 (eq (trap (asin nil)) '(exit-error eval_error)))
(define test5 (eq (trap (acos '(1 2 3))) '(exit-error eval_error)))
(define test6 (eq (trap (atan [1 2 3])) '(exit-error eval_error)))
(define test7 (eq (trap (exp "test")) '(exit-error eval_error)))
(define test8 (eq (trap (sqrt 'sym)) '(exit-error eval_error)))
(define test9 (eq (trap (log t)) '(exit-error eval_error)))
(define test10 (eq (trap (log10 nil)) '(exit-error eval_error)))
(define test11 (eq (trap (floor '(1))) '(exit-error eval_error)))
(define test12 (eq (trap (ceil [| 2 |])) '(exit-error eval_error)))
(define test13 (eq (trap (round "str")) '(exit-error eval_error)))
(define test14 (eq (trap (atan2 "s" 1.0)) '(exit-error eval_error)))
(define test15 (eq (trap (atan2 1.0 'sym)) '(exit-error eval_error)))
(define test16 (eq (trap (pow "a" 2.0)) '(exit-error eval_error)))
(define test17 (eq (trap (pow 2.0 t)) '(exit-error eval_error)))
(define test18 (eq (trap (deg2rad "deg")) '(exit-error eval_error)))
(define test19 (eq (trap (rad2deg nil)) '(exit-error eval_error)))
(define test20 (eq (trap (is-nan "nan")) '(exit-error type_error)))
(define test21 (eq (trap (is-inf 'inf)) '(exit-error type_error)))

(if (and test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 
         test11 test12 test13 test14 test15 test16 test17 test18 test19 test20 test21)
    (print "SUCCESS")
    (print "FAILURE"))